package com.foundryx.shared.core.utils;

/**
 * @className: StringUtil
 * @author: ocxz1
 * @date: 2025/6/25 上午9:56
 * @Version: 1.0
 * @description: fx-share-resources
 */
public class StringUtil {

    /**
     * 使用 {} 作为占位符进行字符串格式化。
     *
     * @param template 模板字符串，例如："{} 年龄是 {}"
     * @param args     替换值数组，例如："张三", 25
     * @return 格式化后的字符串
     */
    public static String format(String template, Object... args) {
        if (template == null || template.isEmpty()) {
            return template;
        }

        StringBuilder result = new StringBuilder();
        int argIndex = 0;

        int length = template.length();
        for (int i = 0; i < length; i++) {
            if (i + 1 < length && template.charAt(i) == '{' && template.charAt(i + 1) == '}') {
                // 匹配到 {}
                if (argIndex < args.length) {
                    // 有参数，替换为值
                    result.append(args[argIndex]);
                    argIndex++;
                } else {
                    // 参数不足，保留 {}
                    result.append("{}");
                }
                i++; // 跳过下一个字符 }
            } else {
                // 非 {} 字符，直接追加
                result.append(template.charAt(i));
            }
        }

        // 忽略多余的参数，不抛异常

        return result.toString();
    }
}
